#ifndef __FTPCLIENT_H__
#define __FTPCLIENT_H__
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <string.h>
#include <netinet/in.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/wait.h>
#include <stdbool.h>
// #define DEBUG

int init_tcpclient(const char *ip, short port);
void handleCmd(const char *cmd);

/*客户端向服务器发送退出请求*/
void cmd_bye(int sockfd);

void cmd_ls(int sockfd);
void recv_ls_resp(int sockfd);

void cmd_get(int sockfd, const char *filename);
void recv_get_resp(int sockfd, const char *filename);

/*上传文件至服务器*/
void cmd_put(int sockfd, const char *filename);

/*接收服务器的回复信息*/
void recv_put_resp(int sockfd, const char *filename);

/*向服务器发送打印当前目录的请求*/
void cmd_pwd(int sockfd);
/*接收服务器回复的数据包，并打印当前的目录*/
void recv_pwd_resp(int sockfd);

/*向服务器发送更换目录请求*/
void cmd_cd(int sockfd, const char *str);

/*接收服务器的回复的数据包*/
void recv_cd_resp(int sockfd);

void cmd_getdir(int sockfd, char *filename_);

/*接收服务器发送的文件夹*/
void recv_getdir_resp(int sockfd, const char *dirname);

/*向服务器发送上传文件的请求*/
void cmd_putdir(int sockfd, const char *filename_);

/*使用手册*/
void manual();

/*向服务器发送stat请求*/
void cmd_stat(int sockfd, const char *filename_);

/*接收服务器对stat的回复*/
void recv_stat_resp(int sockfd);
#endif